home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Programming / LEDA / prog / basic / sort.c < prev    next >
C/C++ Source or Header  |  1994-08-05  |  2KB  |  113 lines

  1. #include <LEDA/basic.h>
  2. #include <LEDA/list.h>
  3. #include <LEDA/array.h>
  4.  
  5.  
  6.  
  7. int main () 
  8. {
  9.   int i;
  10.   int N = read_int("N = "); 
  11.  
  12.   float T = used_time();
  13.  
  14.   cout << "building arrays      ";
  15.   cout.flush();
  16.  
  17.   array<int>    Ai(N);
  18.   array<float>  Af(N);
  19.   array<double> Ad(N);
  20.  
  21.   for (i = 0; i < N; i++) Ad[i] = Af[i] = Ai[i] = random(1,1000000);
  22.  
  23.   cout << string("  %5.3f sec",used_time(T));
  24.   newline;
  25.  
  26.  
  27.   cout << "building lists       ";
  28.   cout.flush();
  29.  
  30.   list<int>     Li;
  31.   list<float>   Lf;
  32.   list<double>  Ld;
  33.  
  34.   for (i = 0; i < N; i++) 
  35.   { Li.append(Ai[i]);
  36.     Lf.append(Af[i]);
  37.     Ld.append(Ad[i]);
  38.   }
  39.   cout << string("  %5.3f sec",used_time(T));
  40.   newline;
  41.   newline;
  42.  
  43.   cout << "sorting array<int>   ";
  44.   cout.flush();
  45.   Ai.sort();
  46.   cout << string("  %5.3f sec",used_time(T));
  47.   newline;
  48.  
  49.  
  50.   cout << "sorting again        ";
  51.   cout.flush();
  52.   Ai.sort();
  53.   cout << string("  %5.3f sec",used_time(T));
  54.   newline;
  55.  
  56.  
  57.   cout << "sorting array<float> ";
  58.   cout.flush();
  59.   Af.sort();
  60.   cout << string("  %5.3f sec",used_time(T));
  61.   newline;
  62.  
  63.   cout << "sorting array<double>";
  64.   cout.flush();
  65.   Ad.sort();
  66.   cout << string("  %5.3f sec",used_time(T));
  67.   newline;
  68.   newline;
  69.  
  70.  
  71.   cout << "sorting list<int>    ";
  72.   cout.flush();
  73.   Li.sort();
  74.   cout << string("  %5.3f sec",used_time(T));
  75.   newline;
  76.  
  77.   cout << "sorting again        ";
  78.   cout.flush();
  79.   Li.sort();
  80.   cout << string("  %5.3f sec",used_time(T));
  81.   newline;
  82.  
  83.   cout << "sorting list<float>  ";
  84.   cout.flush();
  85.   Lf.sort();
  86.   cout << string("  %5.3f sec",used_time(T));
  87.   newline;
  88.  
  89.   cout << "sorting list<double> ";
  90.   cout.flush();
  91.   Ld.sort();
  92.   cout << string("  %5.3f sec",used_time(T));
  93.   newline;
  94.   newline;
  95.  
  96.   cout << "test sorting         ";
  97.   cout.flush();
  98.  
  99.   for(i=0;i<N;i++)
  100.   { int    x = Li.pop();
  101.     float  y = Lf.pop();
  102.     double z = Ld.pop();
  103.     if (x != y || y != z || z != Ai[i] || Ai[i] != Af[i] || Af[i] != Ad[i]) 
  104.       cout << "ERROR\n";
  105.    }
  106.   cout << string("  %5.3f sec",used_time(T));
  107.   newline;
  108.  
  109.  
  110. }
  111.  
  112.  
  113.